/**
 * 
 */
class Auction {

    SortedSet offers
    static hasMany = [offers : Offer]

    static transients = ['price']

    String title
    String shortDescription
    String description
    Date dateCreated
    Date lastUpdated
    Date begin
    Date finish
    int startingPrice = 0
    boolean finished = false

    static constraints = {
        title(blank: false)
        description(blank: false)
        shortDescription(blank: false)
        begin(blank: false,
            validator: {val, obj ->
                if (val?.compareTo(obj.finish) > 0) {
                    //początek auckji jest po końcu
                    return false
                }
            }
        )
        //po co dwa razy to samo sprawdzać??
//        finish(blank: false,
//            validator: {val, obj ->
//                if (val?.compareTo(obj.begin) < 0) {
//                    //koniec aukcji jest przed początkiem
//                    return false
//                }
//            }
//        )
    }

    /**
     * Zwraca aktualną cenę na aukcji
     */
    int getPrice() {
        if (offers.size() == 0) {
            return startingPrice
        }
        else {
            return offers.first().price
        }
    }
}
